﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LojaVirtual.Comuns.Produtos;
using LojaVirtual.Infra;
using LojaWeb.Models;

namespace LojaWeb.Areas.Admin.Controllers
{ 
    [Authorize]
    public class CategoriaController : Controller
    {
		private UnitOfWork db;

		public CategoriaController()
		{
			db = new UnitOfWork();
		}

		//
		// GET: /Categoria/
		public ViewResult Index()
		{
			var categorias = db.Categorias.Recuperar();
			return View(categorias);
		}

		//
		// GET: /Categoria/Details/5
		public ViewResult Details(int id)
		{

			Categoria categoria = db.Categorias.Recuperar(id);
			return View(categoria);
		}

		//
		// GET: /Categoria/Create
		public ActionResult Create()
		{
			return View();
		}

		//
		// POST: /Categoria/Create
		[HttpPost]
		public ActionResult Create(Categoria categoria)
		{
			if (ModelState.IsValid)
			{
				db.Categorias.Inserir(categoria);
				db.SalvarAlteracoes();
				return RedirectToAction("Index");
			}

			return View(categoria);
		}

		//
		// GET: /Categoria/Edit/5
		public ActionResult Edit(int id)
		{
			Categoria categoria = db.Categorias.Recuperar(id);
			return View(categoria);
		}

		//
		// POST: /Categoria/Edit/5
		[HttpPost]
		public ActionResult Edit(Categoria categoria)
		{
			if (ModelState.IsValid)
			{
				db.Categorias.Atualizar(categoria);
				db.SalvarAlteracoes();
				return RedirectToAction("Index");
			}
			return View(categoria);
		}

		//
		// GET: /Categoria/Delete/5
		public ActionResult Delete(int id)
		{
			Categoria categoria = db.Categorias.Recuperar(id);
			return View(categoria);
		}

		//
		// POST: /Categoria/Delete/5
		[HttpPost, ActionName("Delete")]
		public ActionResult DeleteConfirmed(int id)
		{
			db.Categorias.Delete(id);
			db.SalvarAlteracoes();
			return RedirectToAction("Index");
		}

        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }
    }
}